package cn.b.sky.user.service;

import cn.b.sky.user.service.model.LoginLog;
import cn.b.sky.user.service.model.condition.LoginLogCondition;

import java.util.List;

public interface LoginLogService {

  /**
   * 
   * <strong>Title : selectOnLineLog<br></strong>
   * <strong>Description : </strong>查询在线用户日志<br> 
   * <strong>Create on : 2015-8-6 上午10:20:54<br></strong>
   * <p>
   * @param now
   * @return
   * List<LoginLog>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<LoginLog> selectOnLineLog(LoginLogCondition loginLogCondition);

  /**
   * 
   * <strong>Title : selectOnLineLogCount<br></strong>
   * <strong>Description : </strong>查询在线日志数量<br> 
   * <strong>Create on : 2015-8-6 上午11:06:44<br></strong>
   * <p>
   * @return
   * int
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectOnLineLogCount(String siteCode);

  /**
   * 
   * <strong>Title : selectHisLog<br></strong>
   * <strong>Description : </strong>查询历史日志<br> 
   * <strong>Create on : 2015-8-6 下午02:03:20<br></strong>
   * <p>
   * @param loginLogCondition
   * @return
   * List<LoginLog>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<LoginLog> selectHisLog(LoginLogCondition loginLogCondition);

  /**
   * 
   * <strong>Title : selectHisLogCount<br></strong>
   * <strong>Description : </strong>查询历史日志条数<br> 
   * <strong>Create on : 2015-8-6 下午02:47:14<br></strong>
   * <p>
   * @param loginLogCondition
   * @return
   * int
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectHisLogCount(LoginLogCondition loginLogCondition);

  /**
   * 
   * <strong>Title : deleteLog<br></strong>
   * <strong>Description : </strong>删除日志<br> 
   * <strong>Create on : 2015-8-6 下午03:46:47<br></strong>
   * <p>
   * @param id
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deleteLog(long id);

  /**
   * 
   * <strong>Title : saveLoginLog<br></strong>
   * <strong>Description : </strong>登录或登出日志信息保存<br> 
   * <strong>Create on : 2015-8-31 上午11:08:39<br></strong>
   * <p>
   * @param log
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void saveLoginLog(LoginLog log);

  /**
   * 
   * <strong>Title : modifyLoginLog<br></strong>
   * <strong>Description : </strong>根据回话id修改退出时间<br> 
   * <strong>Create on : 2015-8-31 下午1:56:34<br></strong>
   * <p>
   * @param sessionId
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void modifyLoginLog(String sessionId);

  /**
   * 
   * <strong>Title : modifyLoginOutLogByServerStart<br></strong>
   * <strong>Description : </strong>服务器重新启动的时候修改所以登陆状态的日志信息为登出<br> 
   * <strong>Create on : 2016-9-7 下午4:45:51<br></strong>
   * <p>
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void modifyLoginOutLogByServerStart();
}
